Purposes

  • Estimate degradation metrics on re-recorded signals from playback experiment at Bosque de Tlalpan, Mexico City, 2019

  • Explore graphically variation in degradation parameters related to abiotic factors

 

pca_degrad_params <- c("blur.ratio", "spectrum.blur.ratio", "envelope.correlation",
    "excess.attenuation", "signal.to.noise.ratio", "cross.correlation",
    "tail.to.signal.ratio", "tail.to.noise.ratio", "spectrum.correlation")

comp.cases <- complete.cases(degrad_df[, names(degrad_df) %in% pca_degrad_params])

pca <- prcomp(degrad_df[comp.cases, names(degrad_df) %in% pca_degrad_params],
    scale. = TRUE)

# add to data
degrad_df$PC1 <- NA
degrad_df$PC1[comp.cases] <- pca$x[, 1]

# plot rotation values by PC
pca_rot <- as.data.frame(pca$rotation[, 1:4])

pca_rot_stck <- stack(pca_rot)

pca_rot_stck$variable <- rownames(pca_rot)
pca_rot_stck$Sign <- ifelse(pca_rot_stck$values > 0, "Positive", "Negative")
pca_rot_stck$rotation <- abs(pca_rot_stck$values)

ggplot(pca_rot_stck, aes(x = variable, y = rotation, fill = Sign)) +
    geom_col() + coord_flip() + scale_fill_viridis_d(alpha = 0.7,
    begin = 0.3, end = 0.8) + facet_wrap(~ind)

cormat <- cor(degrad_df[, degrad_params], use = "pairwise.complete.obs")

rownames(cormat) <- colnames(cormat) <- names(degrad_params)

cols_corr <- colorRampPalette(c("white", "white", viridis(4, direction = -1)))(10)

cp <- corrplot.mixed(cormat, tl.cex = 0.7, upper.col = cols_corr,
    lower.col = cols_corr, order = "hclust", lower = "number", upper = "ellipse",
    tl.col = "black")

# sort parameters as in clusters for cross correlation
degrad_params <- degrad_params[match(rownames(cp$corr), names(degrad_params))]

Change with distance by frequency

SPL
  Signal to noise ratio
  Signal to noise ratio
  Envelope correlation
  Cross correlation
  Spectrum correlation
  Tail to noise ratio
  Detection distance
  Habitat attenuation coeff
  Spectral blur ratio
  Blur ratio
  Excess attenuation
  Tail to signal ratio
  PC1
 

Habitat structure

## [1] "SPL"

## [1] "signal.to.noise.ratio"

## [1] "signal.to.noise.ratio"

## [1] "envelope.correlation"

## [1] "cross.correlation"

## [1] "spectrum.correlation"

## [1] "tail.to.noise.ratio"

## [1] "detection.distance"

## [1] "habitat.attenuation.coeff"

## [1] "spectral.blur.ratio"

## [1] "blur.ratio"

## [1] "excess.attenuation"

## [1] "tail.to.signal.ratio"

## [1] "PC1"

Frequency modulation and habitat structure

## [1] "SPL"

## [1] "signal.to.noise.ratio"

## [1] "signal.to.noise.ratio"

## [1] "envelope.correlation"

## [1] "cross.correlation"

## [1] "spectrum.correlation"

## [1] "tail.to.noise.ratio"

## [1] "detection.distance"

## [1] "habitat.attenuation.coeff"

## [1] "spectral.blur.ratio"

## [1] "blur.ratio"

## [1] "excess.attenuation"

## [1] "tail.to.signal.ratio"

## [1] "PC1"

Amplitude modulation and habitat structure

## [1] "SPL"

## [1] "signal.to.noise.ratio"

## [1] "signal.to.noise.ratio"

## [1] "envelope.correlation"

## [1] "cross.correlation"

## [1] "spectrum.correlation"

## [1] "tail.to.noise.ratio"

## [1] "detection.distance"

## [1] "habitat.attenuation.coeff"

## [1] "spectral.blur.ratio"

## [1] "blur.ratio"

## [1] "excess.attenuation"

## [1] "tail.to.signal.ratio"

## [1] "PC1"

Harmonicity and habitat structure

## [1] "SPL"

## [1] "signal.to.noise.ratio"

## [1] "signal.to.noise.ratio"

## [1] "envelope.correlation"

## [1] "cross.correlation"

## [1] "spectrum.correlation"

## [1] "tail.to.noise.ratio"

## [1] "detection.distance"

## [1] "habitat.attenuation.coeff"

## [1] "spectral.blur.ratio"

## [1] "blur.ratio"

## [1] "excess.attenuation"

## [1] "tail.to.signal.ratio"

## [1] "PC1"

Duration and habitat structure

## [1] "SPL"

## [1] "signal.to.noise.ratio"

## [1] "signal.to.noise.ratio"

## [1] "envelope.correlation"

## [1] "cross.correlation"

## [1] "spectrum.correlation"

## [1] "tail.to.noise.ratio"

## [1] "detection.distance"

## [1] "habitat.attenuation.coeff"

## [1] "spectral.blur.ratio"

## [1] "blur.ratio"

## [1] "excess.attenuation"

## [1] "tail.to.signal.ratio"

## [1] "PC1"

Temperature

## [1] "SPL"

## [1] "signal.to.noise.ratio"

## [1] "signal.to.noise.ratio"

## [1] "envelope.correlation"

## [1] "cross.correlation"

## [1] "spectrum.correlation"

## [1] "tail.to.noise.ratio"

## [1] "detection.distance"

## [1] "habitat.attenuation.coeff"

## [1] "spectral.blur.ratio"

## [1] "blur.ratio"

## [1] "excess.attenuation"

## [1] "tail.to.signal.ratio"

## [1] "PC1"

 

Takeaways

 


 

Session information

## R version 4.1.0 (2021-05-18)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Ubuntu 20.04.2 LTS
## 
## Matrix products: default
## BLAS:   /usr/lib/x86_64-linux-gnu/atlas/libblas.so.3.10.3
## LAPACK: /usr/lib/x86_64-linux-gnu/atlas/liblapack.so.3.10.3
## 
## locale:
##  [1] LC_CTYPE=pt_BR.UTF-8       LC_NUMERIC=C              
##  [3] LC_TIME=es_CR.UTF-8        LC_COLLATE=pt_BR.UTF-8    
##  [5] LC_MONETARY=es_CR.UTF-8    LC_MESSAGES=pt_BR.UTF-8   
##  [7] LC_PAPER=es_CR.UTF-8       LC_NAME=C                 
##  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
## [11] LC_MEASUREMENT=es_CR.UTF-8 LC_IDENTIFICATION=C       
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
##  [1] cowplot_1.1.1      ggdist_3.2.0       brms_2.18.0        Rcpp_1.0.9        
##  [5] corrplot_0.92      viridis_0.6.2      viridisLite_0.4.1  tidyr_1.2.0       
##  [9] ggplot2_3.3.6      baRulho_1.0.7      warbleR_1.1.28     NatureSounds_1.0.4
## [13] seewave_2.2.0      tuneR_1.4.0        Rraven_1.0.14      rprojroot_2.0.3   
## [17] formatR_1.12       knitr_1.40         kableExtra_1.3.4   klippy_0.0.0.9500 
## [21] remotes_2.4.2     
## 
## loaded via a namespace (and not attached):
##   [1] backports_1.4.1      systemfonts_1.0.4    plyr_1.8.7          
##   [4] igraph_1.3.5         splines_4.1.0        crosstalk_1.2.0     
##   [7] TH.data_1.1-0        rstantools_2.2.0     inline_0.3.19       
##  [10] digest_0.6.29        htmltools_0.5.3      fansi_1.0.3         
##  [13] magrittr_2.0.3       checkmate_2.1.0      RcppParallel_5.1.5  
##  [16] matrixStats_0.62.0   sandwich_3.0-1       xts_0.12.2          
##  [19] svglite_2.1.0        prettyunits_1.1.1    colorspace_2.0-3    
##  [22] signal_0.7-7         rvest_1.0.2          xfun_0.32           
##  [25] dplyr_1.0.9          callr_3.7.0          crayon_1.5.1        
##  [28] RCurl_1.98-1.8       jsonlite_1.8.0       lme4_1.1-30         
##  [31] survival_3.2-11      zoo_1.8-11           glue_1.6.2          
##  [34] gtable_0.3.0         emmeans_1.8.1-1      webshot_0.5.3       
##  [37] distributional_0.3.1 pkgbuild_1.3.1       rstan_2.21.7        
##  [40] abind_1.4-5          scales_1.2.1         mvtnorm_1.1-3       
##  [43] DBI_1.1.1            miniUI_0.1.1.1       dtw_1.22-3          
##  [46] xtable_1.8-4         proxy_0.4-27         stats4_4.1.0        
##  [49] StanHeaders_2.21.0-7 DT_0.26              htmlwidgets_1.5.4   
##  [52] httr_1.4.3           threejs_0.3.3        posterior_1.3.1     
##  [55] ellipsis_0.3.2       pkgconfig_2.0.3      loo_2.5.1           
##  [58] farver_2.1.1         sass_0.4.1           utf8_1.2.2          
##  [61] labeling_0.4.2       tidyselect_1.1.2     rlang_1.0.4         
##  [64] reshape2_1.4.4       later_1.3.0          munsell_0.5.0       
##  [67] tools_4.1.0          cli_3.3.0            generics_0.1.3      
##  [70] ggridges_0.5.4       evaluate_0.16        stringr_1.4.1       
##  [73] fastmap_1.1.0        yaml_2.3.5           processx_3.7.0      
##  [76] purrr_0.3.4          pbapply_1.5-0        nlme_3.1-152        
##  [79] projpred_2.0.2       mime_0.12            xml2_1.3.3          
##  [82] compiler_4.1.0       bayesplot_1.9.0      shinythemes_1.2.0   
##  [85] rstudioapi_0.13      gamm4_0.2-6          png_0.1-8           
##  [88] tibble_3.1.8         bslib_0.3.1          stringi_1.7.8       
##  [91] highr_0.9            ps_1.7.1             Brobdingnag_1.2-9   
##  [94] lattice_0.20-44      Matrix_1.5-1         nloptr_2.0.3        
##  [97] markdown_1.1         shinyjs_2.1.0        fftw_1.0-7          
## [100] tensorA_0.36.2       vctrs_0.4.1          pillar_1.8.1        
## [103] lifecycle_1.0.1      jquerylib_0.1.4      bridgesampling_1.1-2
## [106] estimability_1.4.1   bitops_1.0-7         Sim.DiffProc_4.8    
## [109] httpuv_1.6.6         R6_2.5.1             promises_1.2.0.1    
## [112] gridExtra_2.3        codetools_0.2-18     boot_1.3-28         
## [115] colourpicker_1.2.0   MASS_7.3-54          gtools_3.9.3        
## [118] assertthat_0.2.1     rjson_0.2.21         withr_2.5.0         
## [121] shinystan_2.6.0      Deriv_4.1.3          multcomp_1.4-17     
## [124] mgcv_1.8-36          parallel_4.1.0       grid_4.1.0          
## [127] minqa_1.2.4          coda_0.19-4          rmarkdown_2.14      
## [130] shiny_1.7.3          base64enc_0.1-3      dygraphs_1.1.1.6